#ifndef DECODERTEST_H
#define DECODERTEST_H

#include <QtTest/QtTest>
#include <newcode/ByteMatrix.h>
#include <string>
#include <zxing/common/Array.h>
#define protected public
#define private public
#include <newcode/decoder/DecoderGC.h>
#undef protected
#undef private

using namespace newcode;
using namespace std;
using namespace zxing;

class DecoderTest: public QObject
{
    Q_OBJECT

private:
    static const string expectedStrings[];
    ArrayRef<unsigned char> selectWithMode(decoder::Decoder decoder, int x,
        int y, encoder::EncodeMode mode);

private Q_SLOTS:
    void decodeBytesTest();
    void decodeFormatElementsTest();
    void decodeFormatElementsTest_data();
    void fullTest();
    void fullTest_data();
};

#endif // DECODERTEST_H
